package sel.me.java.learning.rabbitmq.routing.producer;

import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;

import sel.me.java.learning.rabbitmq.ConnectionUtil;

/*
 * 根据指定的路由键发送到对应的消息队列中，如下图，在这个设置中，我们可以看到与它绑定的两个队列的直接交换X。
 * 第一个队列绑定了绑定键橙色，第二个队列有两个绑定，一个绑定键为黑色，另一个为绿色。
 * 在这样的设置中，将发送到与路由键橙色的交换的消息将被路由到队列Q1。
 * 带有黑色或绿色的路由键的消息将会进入Q2。所有其他消息将被丢弃。
 */
public class RoutingProducer {

	private static final String EXCHANGE_NAME = "test_exchange_direct";

    public static void main(String[] argv) throws Exception {
        // 获取到连接以及mq通道
        Connection connection = ConnectionUtil.getConnection();
        Channel channel = connection.createChannel();

        // 声明exchange,路由模式声明direct
        channel.exchangeDeclare(EXCHANGE_NAME, "direct");

        // 消息内容
        String message = "这是消息B";
        channel.basicPublish(EXCHANGE_NAME, "B", null, message.getBytes());
        String messageA = "这是消息A";
        channel.basicPublish(EXCHANGE_NAME, "A", null, messageA.getBytes());
        System.out.println(" [生产者] Sent '" + message + "'");

        channel.close();
        connection.close();
    }

}
